// 连接数据库
// 1,导入mysql包
const mysql = require('mysql');

// 导入数据库的配置信息
const { mysql: dbConfig } = require('../config');

// 2,创建连接
const con = mysql.createConnection(dbConfig);

// 3,连接数据库
con.connect();

//提取数据库执行的语句
//提取获取所有的方法
function getAll(sql) {
  return new Promise((resolve, reject) => {
    con.query(sql, function (err, data) {
      //如果有错误,就抛出错误
      if (err) reject(err);

      //发送数据
      resolve(data);
    });
  });
}

//提取获取一个的方法
function getOne(sql) {
  return new Promise((resolve, reject) => {
    con.query(sql, function (err, data) {
      if (err) reject(err);

      if (Array.isArray(data)) {
        data[0] ? resolve(data[0]) : resolve(null);
      } else {
        reject(new TypeError('data must be an array'));
      }
    });
  });
}

//提取增删改的方法
function exec(sql) {
  return new Promise((resolve, reject) => {
    con.query(sql, function (err, data) {
      if (err) reject(err);
      resolve(data);
    });
  });
}

//导出方法
module.exports = {
  getAll,
  getOne,
  exec,
};
